<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			/**
			 * 它们都用于查询数组中的项是否满足某个条件。对于every()方法来说，
			 * 传入的函数必须对每一项都返回true，这个方法才返回true。
			 */
			var nums = [1,2,3,4,5,4,3,2,1];
			var result = nums.every(function(item, index, array){//每个元素,元素下标,数组本身
			  return (item >9);
			});
			/**
			 * 它们都用于查询数组中的项是否满足某个条件,有一项满足就返回true
			 */
			//console.info("result1 "+result);
			var result2=nums.some(function(item,index,array){
				return (item >6);
			});
			//console.info("result2 "+result2);
			/**
			 * 过滤,返回满足条件的数组
			 * 它利用指定的函数确定是否存在返回的数组中包含某一项
			 */
			var result3=nums.filter(function(item,index,array){
				return(item>2);
			});
			/**
			 * map()方法也返回一个数组，而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果
			 */
			//console.info("result3 "+result3);
			var result4=nums.map(function(item,index,array){
				return(item * 2);
			});
			//console.info("result4 "+result4);
			/**
			 * forEach()方法，它只是对数组中的每一项运行传入的函数。
			 */
			nums.forEach(function(item,index,array){
				//执行需要的操作
				//console.info("item "+item);
			});
			/**
			 * 我们可以使用reduce()方法来求数组中所有值的总和。
			 * 从第一项到最后一项
			 */
			var sum=nums.reduce(function(pre,cur,array){//上一个值,当前值,数组本身
				return pre+cur;
			});
			//console.log("sum "+sum);
			/**
			 * 从最后一项到第一项
			 */
			var sum2=nums.reduceRight(function(pre,cur,array){
				return pre+cur;
			});
			//console.log("sum2 "+sum2);
			var nums2 = [1,2,3,4,5,4,3,2,1];
			nums2.splice(0,nums2.length);
			//console.log(nums2);
			/**
			 * es6循环
			 */
			let str = '\u{20bb7}abc';
			for (let code of str) {
			    console.log('es6', code);
			  }
		</script>
		
	</body>
</html>
